#include "../header.h"

//1.条件标量：让某些线程满足条件才运行。
//2.条件 + 条件变量。
static int flg = 0 ;

//2种类型。
pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;

int main(int argc, char const *argv[])
{
    //初始化
    if(pthread_cond_init(&cond,NULL))
    {
        perror("条件变量初始化失败!\n");
        return -1;
    }
    if(pthread_mutex_init(&mutex,NULL))
    {
        perror("互斥锁初始化失败!\n");
        return -1;
    }
    printf("条件变量与互斥锁 初始化成功!\n");

//线程2:
    //if(flg == 0) //flg ==0 线程1 运行。线程2 阻塞
        pthread_cond_wait(&cond,&mutex);    // 0  线程1运行 线程2阻塞
        //调佣wait函数 - 满足一定的条件      // 1  线程1阻塞 线程2运行。
//线程1:
    //调用signal启动函数
    //if(flg == 1)
        pthread_cond_signal(&cond);
    //销毁条件变量。
    pthread_cond_destroy(&cond);
    pthread_mutex_destroy(&mutex);

    return 0;
}
